UniLearnの教務課は、架空の2026年度学期に向けたコース成績レポートを必要としています。以下を集計してください: 有効な履修登録(まだスコアが登録されていない学生も含む)。
PostgreSQLデータの準備
- 練習用データベースを次で開きます: pgAdminクエリツール。次を有効にします: 自動コミット をオンにします。
- 選択: ファイルを開く をクリックし、別途提供された
lab5_setup.sqlを選択します。 - ファイル全体を実行します。これにより次が選択されます:
lab5スキーマ。同じクエリツールで、次から確認クエリをコピーします: コード を実行し、36行であることを確認します。
1行の意味
1行は 1人の学生の1つのコースへの履修登録を表します。S101は3つのコースを履修しているため、S101は3回表示されます。履修登録数と学生数は異なる場合があります。
教務課レポートの作成
- 履修登録数、記録されたスコア、および重複を除いた学生数をカウントします。
- 各コースの合計と平均を計算します。
- 要求された集計条件を満たすコースを抽出します。
💡 集計前に読む
NULL はスコアが記録されていないことを意味します: 0 は記録されたスコアです。取り消された履修登録はテーブルに残りますが、レポートからは除外されます。プレビュー: 36件の履修登録のうち最初の12件
完全な enrolments テーブルには6つのコースにわたる20名の重複を除いた学生が含まれています。6件の取り消された行はレポートから除外されます。確認クエリを実行して36行すべてを表示してください。
| 履修登録 | 学生 | プログラム | コース | ステータス | スコア | 時間 |
|---|---|---|---|---|---|---|
| E01 | S101 | DSAI | SQL101 | active | 80 | 6 |
| E02 | S102 | CS | SQL101 | active | 60 | 4 |
| E03 | S103 | DSAI | SQL101 | active | NULL | 5 |
| E04 | S104 | IT | SQL101 | withdrawn | 90 | 2 |
| E05 | S101 | DSAI | PY101 | active | 90 | 8 |
| E06 | S105 | CS | PY101 | active | 50 | 6 |
| E07 | S106 | DSAI | PY101 | active | 70 | 7 |
| E08 | S107 | IT | PY101 | active | NULL | 3 |
| E09 | S102 | CS | VIS101 | active | 40 | 4 |
| E10 | S108 | DSAI | VIS101 | active | NULL | 2 |
| E11 | S109 | IT | VIS101 | withdrawn | 100 | 1 |
| E12 | S110 | IT | VIS101 | active | 0 | 1 |
列の意味
enrolment_idは1件の履修登録を識別します:student_idは重複する場合があります。scoreは100点満点の点数で、未記録の場合はNULLです。study_hoursはこの履修登録の学習時間を記録します。
💡 PostgreSQL構文
テキスト値はシングルクォートで囲みます。数値とSQLの
NULL は囲みません。各ステートメントはセミコロンで終了します。SET search_path TO lab5;
SELECT *
FROM enrolments
ORDER BY enrolment_id;新しいクエリツールまたは再接続の場合
セットアップは現在の接続に対してスキーマを選択します。新しい接続で以下を一度実行してから、レッスンのクエリを通常どおり使用してください。
SET search_path TO lab5;